
//parametros de inicializacao
	$(window).bind("offline online", function() {
	   drawOnline();
	});
	
	$.mobile.page.prototype.options.domCache = true;


//verificar se a aplicação está online ou offline
function drawOnline(){
   if (navigator.onLine) {
        $("#staticMap").innerHTML = 'ON';
    } else {
        $("#staticMap").innerHTML = 'OFF';
    }
}

// o método OpenDatabase precisa de 4 parametros; o nome do banco de dados, a versão, a descrição e o tamanho estimado (em bytes)
var db = openDatabase("engelmigzeus", "1.0", "Servidor ZEUS local", 200000);

// deverá mostrar "Database"
console.log(db);

// de qualquer forma, sempre teste que o objeto foi instanciado direito antes de usá-lo
if(!db){
    alert('deu pau no BD!');
}

//Criar Tabela
function CriarTabela(){ 
	db.transaction( function (tx) {
		 tx.executeSql(
		   'CREATE TABLE IF NOT EXISTS OrdemServico (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, equipe TEXT, ordem text)',
		   [],
			   function ()
			   {
				   console.log("Tabela criada!");
				 // alert("codigo para carga de dados");
			   }
		   );
	});
}

// adicionar os registros
function AdicionarRegistro(equipe, ordem){
	db.transaction( function (tx) {
		tx.executeSql(
		   'CREATE TABLE IF NOT EXISTS OrdemServico (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,equipe TEXT, ordem text)', [],
		   function ()
		   {
			  tx.executeSql('INSERT INTO OrdemServico (equipe, ordem) VALUES ("'+equipe+'", "'+ordem+'")');			  
			  console.log("Inserido registro na OS");
			  //location.reload(true);
		   }
		   );
	});
}

 // callback de sucesso, uma função anônima que recebe um objeto SQLTransaction e um SQLResultSet
function renderFunc(tx, results)
       {
          var len = results.rows.length;		 
		  document.getElementById('btsincronizar').innerHTML = len;
         for (var i = 0; i < len; i++)
          {
             var row = results.rows.item(i);
			var conteudo = document.getElementById('conteudo');
  		    conteudo.innerHTML += (row.id + ' : ' + row.ordem);
          }
      };
	   // callback de erro, função anônima que recebe um objeto SQLTransaction e um SQLError

function onError(tx, error)
       {
          // window.document.write('ooops ' + error.message);
		   console.log('deu pau!' + error.message);
       }     

//Sincronizar o resultado
function Sincronizar(){
// o método transaction aceita uma função anônima que recebe um objeto SQLTransaction como parâmetro
db.transaction( function (tx) {
    tx.executeSql('SELECT * FROM OrdemServico',[],renderFunc ,onError);   
 });

}

//Exibir o total de OS
function TotalOS(){
	//location.reload(true);
	db.transaction( function (tx) {
    tx.executeSql('SELECT * FROM OrdemServico',[],MostrarNumeroOS ,onError);   
 });
}

 // callback de sucesso, uma função anônima que recebe um objeto SQLTransaction e um SQLResultSet
function MostrarNumeroOS(tx, results)
       {
          var len = results.rows.length;
		  document.getElementById('btsincronizar').innerHTML = len;
         
      };
	   // callback de erro, função anônima que recebe um objeto SQLTransaction e um SQLError



 
 //Funcao para Excuir a Tabela quando necessario.
function ExcluirTabela(){
	db.transaction( function (tx) {
		tx.executeSql(
		   'DROP TABLE OrdemServico',
		   [],
		    // callback de sucesso, uma função anônima que recebe um objeto SQLTransaction e um SQLResultSet
		   function (tx, results)
		   {
			  //window.document.write('Tabela excluída');
			  console.log("Tabela excluida");
  		       location.reload(true);
		   },
		    // callback de erro, função anônima que recebe um objeto SQLTransaction e um SQLError
		   function (tx, error)
		   {
			 console.log('deu pau!'+ error.message);
			 // window.document.write('ooops ' + error.message);
		   }
		   );
	});
}

function Home(){
	
	
	}

CriarTabela();

//=================================
function onInit() {
    if (window.applicationCache) {
        applicationCache.addEventListener('error', appCacheError, false);
        applicationCache.addEventListener('checking', checkingEvent, false);
        applicationCache.addEventListener('noupdate', noUpdateEvent, false);
        applicationCache.addEventListener('downloading', downloadingEvent, false);
        applicationCache.addEventListener('progress', progressEvent, false);
        applicationCache.addEventListener('updateready', updateReadyEvent, false);
        applicationCache.addEventListener('cached', cachedEvent, false);
		
   }

}


function appCacheError(e) {
    displayWord("Erro: " + e.value);
}
function checkingEvent(e) {
    displayWord("Verificando Atualizacao");
}
function noUpdateEvent(e) {
    displayWord("Nao foi atualizado");
}
function downloadingEvent(e) {
    displayWord("Downloading");
}
function progressEvent(e) {
    if (e.loaded)
        displayWord("Arquivos em cache: " + e.loaded);
}
function updateReadyEvent(e) {
    displayWord("Modo Offline habilitado");
}
function cachedEvent(e) {
    displayWord("Offline Habilitado");
}

function displayWord(word) {
	 console.log(word);
}


